Aangezien er weinig ICT omgevingen zijn die uit alleen 1 OS bestaan, en Ansible zowel Linux als Windows kan automatiseren, ben ik ook eens gaan kijken naar de Windows modules voor ansible.
Om Windows via Ansible te automatiseren gebruiken we, in tegenstelling tot ssh onder Linux, WinRM. We zullen dus Ansible moeten uitbreiden om hier gebruik van te kunnen maken. Dat doen we door het volgende commando op de Ansible master te starten
pip install "pywinrm>=0.3.0"
Op de Windows machine runnen we het volgende commando in PowerShell:
Set-Item -Path WSMan:\localhost\Service\Auth\Basic -Value $true
Set-Item -Path WSMan:\localhost\Service\AllowUnencrypted -Value $true
Er zullen vast nog enkele andere dingen moeten worden ingesteld. Maar op https://docs.ansible.com/ansible/latest/user_guide/windows_winrm.html vind je een uitgebreide handleiding wat je allemaal kan/moet instellen
We maken vervolgens een entry aan in de hosts file voor de Windows machine:
[windows] 192.168.1.2 [windows:vars] ansible_user=Administrator ansible_password=Secret ansible_connection=winrm ansible_winrm_server_cert_validation=ignore
Vervolgens maken we een playbook welke een bestand aanmaakt, new_file.txt, in de C:\Temp map onder windows:
--- - hosts: windows connection: winrm gather_facts: no tasks: - name: Create file win_file: path: C:\Temp\new_file.txt state: touch
Als we dit opslaan als windows1.yml en dan het volgende commando uitvoeren zou het bestand aangemaakt moeten worden:
ansible-playbook windows1.yml
Dit resulteert in het volgende filmpje